package es.uned.etsii.si3.taller;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import java.sql.SQLException;
import java.util.List;

@DatabaseTable(tableName = "tiposdeseccion")
public
class TipoSeccion extends Persistente {
	public static final String NOMBRE_FIELD_NAME = "nombre";
	public static final String ID_TIPO_SECCION_FIELD_NAME = "id";

	@DatabaseField(generatedId = true)
	int id;
	@DatabaseField(width = 30, index = true)
	String nombre;

	/**
	 * Factoría para crear nuevos tipos de sección partiendo de un
	 * conjunto de datos, al tiempo que se crea el objeto en la base de datos
	 *
	 * @param  nombre nombre de la sección
	 * @return        un nuevo objeto, ya guardado en la base de datos
	 */
	public
	static TipoSeccion crear(String nombre) throws SQLException {
		TipoSeccion tipoSeccion = new TipoSeccion();

		tipoSeccion.setNombre(nombre);
		getClassDao(TipoSeccion.class).create(tipoSeccion);

		return tipoSeccion;
	}

	public
	static List<TipoSeccion> tiposSeccion () throws SQLException {
		return getClassDao(TipoSeccion.class).queryForAll();
	}

	public
	TipoSeccion() {
		// ORM Lite necesita un constructor por defecto
	}

	public int     getId()       { return id; }
	public String  getNombre()   { return nombre; }

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
}
